using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace WMSSystem.Domain.Workflow
{
    /// <summary>
    /// WorkflowCore订阅表
    /// </summary>
    public class WorkflowSubscriptions
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        [Description("主键ID")]
        [MaxLength(64)]
        [Key]
        public string Id { get; set; }

        /// <summary>
        /// 工作流实例ID
        /// </summary>
        [Description("工作流实例ID")]
        [MaxLength(64)]
        public string WorkflowInstanceId { get; set; }

        /// <summary>
        /// 执行指针ID
        /// </summary>
        [Description("执行指针ID")]
        [MaxLength(64)]
        public string ExecutionPointerId { get; set; }

        /// <summary>
        /// 事件名称
        /// </summary>
        [Description("事件名称")]
        [MaxLength(100)]
        public string EventName { get; set; }

        /// <summary>
        /// 事件键
        /// </summary>
        [Description("事件键")]
        [MaxLength(100)]
        public string EventKey { get; set; }

        /// <summary>
        /// 步骤ID
        /// </summary>
        [Description("步骤ID")]
        public int StepId { get; set; }

        /// <summary>
        /// 外部令牌
        /// </summary>
        [Description("外部令牌")]
        [MaxLength(100)]
        public string? ExternalToken { get; set; }

        /// <summary>
        /// 外部工作器ID
        /// </summary>
        [Description("外部工作器ID")]
        [MaxLength(100)]
        public string? ExternalWorkerId { get; set; }

        /// <summary>
        /// 过期时间
        /// </summary>
        [Description("过期时间")]
        public long? Expires { get; set; }
    }
} 